问题背景
云计算具有按需付费、价格低廉、快速部署等特点,可以有效降低企业服务的部署费用和维护成本,因此得到了众多企业和个人用户的青睐。虚拟化技术是开展云计算服务的技术基础,其安全的重要性不言而喻。
在云环境中,网络虚拟化和计算系统虚拟化是目前的两大主流方向。虚拟计算系统是云计算平台的基础,其安全性直接决定了用户应用和数据资源的安全。由于云租户无法感知云平台是否提供承诺的服务质量或窃取其敏感信息,以及云平台中恶意用户是否会攻击其他用户,因此实现对云的安全监控也是云计算能广泛应用的基础。
网络虚拟化与计算虚拟化是不可分割的,当前支撑网络虚拟化的两种主要技术是软件定义网络(Software Defined Networking, SDN)与网络功能虚拟化(Network Function Virtualization, NFV)。软件定义网络旨在将网络的控制功能与转发功能分离;网络功能虚拟化旨在将高度定制化的硬件网络功能进行虚拟化,从而使网络功能的部署和管理更加灵活,适合云环境的网络功能需求,但也提出了区别于传统网络安全的新挑战。
研究现状
计算系统虚拟化安全现状
在虚拟计算系统方面,如何构建安全的云服务、监控云服务的安全状态是虚拟化技术应用于云环境中亟待解决的问题。
对于云虚拟计算系统安全的构建,英特尔提出的软件保护拓展(Software Guard eXtensions, SGX)、硬件虚拟化机制(Extended Page Tables, EPT),以及最近分支寄存器(Last Branch Record, LBR),都被相继用于对数据或者代码的保护。Secage[1]提出了利用英特尔EPT机制对隐私数据进行隔离保护的方法,通过将隐私数据与相关代码放入不同EPT页表中并在应用程序运行时严格要求隐私数据只能由相关代码进行存取,从而保证隐私数据不会通过内存泄漏方式被攻击者获取。Haven[2]提出了屏蔽执行的概念,它利用英特尔最新的SGX机制保护应用程序的代码和数据能够不受到特权代码或者物理攻击的泄漏和篡改。kBouncer[3]通过利用硬件性能计数器LBR,在运行时观察并验证执行流来防御面向返回的编程(ROP)攻击。ARM也提出了存储器域(memory domain)以及可信区域(TrustZone)等硬件特性来提升系统安全性。Armlock[4]以及shreds[5]系统都使用了存储器域机制来完成内存隔离;TrustOTP[6]通过利用TrustZone隔离机制,在ARM平台上的Secure World中构建可信的动态口令(OTP),能够有效防止拒绝服务(DoS)攻击及OTP窃取攻击。上述工作侧重于单物理节点/虚拟机的安全防御,需要进一步扩展到云环境中。
云虚拟化系统安全监控主要基于虚拟化架构来实现,包括入侵检测、完整性保护、恶意代码检测与分析,以及虚拟机监控框架。VMST[7]基于内核数据重定向的技术完成对目标虚拟机的监控,可以直接使用Linux的系统管理命令作为监控程序,从而避免了自定义开发监控程序。ShadowContext[8]利用系统调用重定向技术完成对目标虚拟机的监控,性能开销低,而且能够监控不同操作系统版本的虚拟机。但上述工作也存在着被动监控以及监控的通用性不强等问题。
网络虚拟化安全现状
在网络虚拟化方面,软件定义网络与网络功能虚拟化相辅相成,在提供实际可行的解决方案的同时,也引入了新的安全问题。
目前,业界对软件定义网络的内生安全已经有了一些研究,如对软件定义网络整体框架的安全性分析、南北向接口的通讯协议的安全保障、安全可靠的控制器平台设计、应用权限管理与资源使用限制、控制通道带宽耗尽的攻击与防御、冲突规则检测等。然而,目前软件定义网络的安全性研究呈现碎片化的特征,没有体系化的防御手段。
网络功能虚拟化起源于产业界,并且在近两年同时受到学术界和产业界的重视,但是由于发展时间还不长,尤其是网络功能虚拟化中的安全尚未得到足够的重视,很多问题还没有得到很好的解决。目前有关网络功能虚拟化的研究主要集中在提高性能与管理框架方面,对其中可能存在的安全问题还少有涉及。
当前工作进展
计算系统虚拟化安全研究
在虚拟计算系统安全方面,对于系统构建,我们的工作有:(1)研究云平台动态可信度量机制,提出了一种基于虚拟动态可信度量根的安全执行环境构建方法[9, 10],能为云平台上多个跨域云服务虚拟机同时构建多级动态安全执行环境,多个用户的敏感应用可以同时在同一平台上各自的安全执行环境中运行;(2)研究可信云服务构建机制,提出了一种有保证的数字签名技术(Assured Digital Signing, ADS)[11]的安全服务来提高数据的可信性(见图1)。ADS能在请求签名的应用软件和客户操作系统都是恶意的情况下保证数字签名的可信性;(3)提出了共享库隔离保护系统Libsec,该系统通过硬件虚拟化机制,将应用程序与共享库进行地址空间隔离,避免了攻击者通过利用应用程序漏洞随意地执行共享库代码或者读取共享库数据,还实现了对应用程序虚拟地址空间的修改并维护了共享库的共享特性。
图1 有保证的数字签名技术
对于云虚拟计算安全监控,针对现有云平台监控的不足,我们主要从以下几个方面进行研究:(1)基于行为的云平台通用监控框架VMDriver[12, 13],能够实时透明地对目标虚拟机的网络、文件进行全面的安全监控,并能够监控云平台下不同操作系统的多种虚拟机;(2)基于数据流分析的主动监控机制,设计并实现了CloudTaint系统[14],可以对目标虚拟机的数据流进行细粒度跟踪分析,大大减少了数据流跟踪带来的系统开销;(3)基于监控域的云平台可信监控框架,可以真实获取虚拟机的运行状态和资源使用情况,获取管理域对客户虚拟机的管理操作,为目标虚拟机提供了通用细粒度的监控,解决了云服务提供商与云用户之间的不信任问题;(4)云环境下一种实用可写的虚拟机自省框架,直接利用现有的系统管理程序作为自省程序完成对虚拟机的监控,能够同时监控云环境下不同操作系统的虚拟机,通用性强而且性能开销低。
网络虚拟化安全研究
在网络虚拟化安全方面,结合软件定义网络与网络功能虚拟化两种技术,从软件定义化的网络安全角度出发,目前的研究进展有:(1)软件定义网络与网络功能虚拟化融合框架,满足多用户或多管理员场景下的网络安全需求自由定制,保障不同用户或管理员所执行的操作与流量处理不产生冲突的同时满足安全需求;(2)软件定义网络数据层转发设备的可用性保障机制,基于软件定义网络处理逻辑与相关协议的特殊性质,分析软件定义网络中特有的针对转发设备的拒绝服务攻击,并从资源整合与有效利用角度提出相应的攻击抵御方法,基于peer support策略(见图2),交换机相互协助,当受到攻击的交换机的流表空间被攻击耗尽时,控制器通过安装引流规则,把攻击流量引导到相邻的有空闲流表资源的交换机上去,从而可以利用整个网络的空闲流表资源来共同抵御攻击,大大提升网络抗攻击能力[15];(3)基于软件定义网络的云数据中心主机保护机制,提出结合软件定义网络的集中管理与分布式计算的负载均衡两者共同优势的解决方案,设计并实现了HostWatcher系统(见图3),该系统利用软件定义网络技术灵活的规则制定与快速的策略更新以及OpenFlow协议的多级流表机制,实现对主机双向流量的监控与处理。基于规则的动态安装与删除,实现对恶意流量的先缓存再以低速率转发的处理,并结合轮询调度机制,完成对攻击的缓解,达到充分保护云数据中心的目标,既能保护云主机不至于被DDoS攻击击垮,又能快速抑制恶意主机的攻击速率[16];(4)网络功能规则的软件定义化,从而将管理员从手动规则配置的静态方式中解放出来,一方面可以减少管理员的负担,并且根据网络的动态变化进行自动化的规则配置与更新;另一方面能够提高网络配置的正确性,减少因人工配置可能引起的失误所带来的安全隐患。
图2 Peer Support策略
图3 HostWatcher系统框架
未来方向
云计算环境具有网络规模庞大、业务复杂多变、服务动态迁移、安全等级差异、异构柔性重组、资源高效利用等特点与需求,在网络虚拟化和虚拟计算系统的安全上也面临诸多挑战。
计算系统虚拟化的安全发展趋势
在云虚拟计算系统安全方面,目前的可信执行环境虽然是动态构建,但构建之后本质还是静态的,对于有服务不间断需求的应用则无法真正确保安全,所以如何加入动态行为检测是未来的研究重点。如何基于动态行为检测,完善安全执行环境,让其成为真正的动态可信执行环境也是一个挑战。另外,硬件机制的多样性值得我们进一步探索,将一些并未针对安全设计的硬件(如LBR寄存器)用于提升系统安全性是非常有意义的。对于云虚拟计算系统的安全监控,未来还需要从三方面展开研究:(1)实用性。研究避免语义重构的虚拟机自省安全方法,降低虚拟机自省技术资源消耗,增强虚拟机自省技术对不同客户操作系统的可移植性;(2)安全性。一方面增强虚拟机管理器自身的安全性,另一方面从语法和语义两方面提升基于软件结构知识的虚拟机自省方法的安全性;(3)维护性。与现有安全工具的融合或者直接使用现有的安全工具作为监控工具,避免自定义开发监控工具带来的困难。
网络虚拟化安全发展趋势
基于云计算环境的要求与网络虚拟化自身的特性,未来网络虚拟化安全可以从以下几个方面进行研究:(1)软件定义网络技术与网络功能虚拟化技术深度融合后的安全问题。虽然软件定义网络技术与网络功能虚拟化技术可以相互独立而存在,但通过两者的深度融合,可以高效地实现网络虚拟化。鉴于两者本身的内生安全问题还没有成熟的解决方案,这两项新兴技术深度融合后的安全问题也必将是重要组成部分;(2)网络虚拟化的体系化的纵深安全防护设计。目前的网络虚拟化安全大都是基于传统网络安全/虚拟化安全问题在新环境中的应用或扩展,研究呈现成碎片化的特点,缺乏纵深的安全防护体系,因此新型、体系化的安全防护框架的设计也将是一个挑战;(3)面向未知攻击的主动防御。网络虚拟化意味着新兴技术的使用、新型应用的开发、新型服务模式的创建等,因此在网络虚拟化的推广过程中,要面对许多新的安全威胁,未知攻击将层出不穷。在面对未知攻击的时候,传统的被动防御手段往往难以应付,因此如何进行主动的防御将是解决未知攻击问题的重要手段;(4)大规模网络中的安全态势感知与预测。网络虚拟化往往应用在大规模复杂网络中(如云环境),具有安全态势复杂、态势动态多变、安全等级差异等特点,需要基于网络的实时态势,对各种网络事件做出快速反应,因此如何实现复杂网络态势的快速感知与准确预测也是网络虚拟化环境中的重要问题之一;(5)侧信道攻击的检测与防御。传统计算系统在系统设计之初没有很好地考虑侧信道攻击的抵御问题,由于侧信道攻击的特性,一旦有新的侧信道攻击,系统管理员将需要通过非常繁杂的工作才能进行对攻击的抵御,有时甚至无法避免侧信道攻击。因此,网络虚拟化系统在设计之初就应该充分考虑侧信道攻击的威胁,以便在侧信道攻击与防御的对抗中掌握主动权。 ■
参考文献
[1] Liu Y, Zhou T, Chen K, et al.Thwarting memory disclosure with efficient hypervisor-enfored intra-domain isolation[C]//Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. New York: ACM Press, 2015. 1607-1619.
[2] Baumann A, Peinado M, Hunt G. Shielding applications from an untrusted cloud with haven[J]. ACM Transactions on Computer Systems, 2015, 33(3): 8.
[3] Pappas V, Polychronakis M, Keromytis A D. Transparent ROP exploit mitigation using indirect branch tracing[C]//Proceedings of the 22nd USENIX Security Symposium. USENIX, 2013: 447-462.
[4] Zhou Y, Wang X, Chen Y, et al. Armlock: Hardware-based fault isolation for ARM[C]// Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security. New York: ACM Press, 2014: 558-569.
[5] Chen Y, Reymondjohnson S, Sun Z, et al. Shreds: Fine-grained execution units with private memory[C]//Proceedings of the 37th IEEE Symposium on Security and Privacy. IEEE, 2016: 56-71.
[6] Sun H, Sun K, Wang Y, et al. Trustotp: Transforming smartphones into secure one-time password tokens[C]//Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. New York: ACM Press, 2015: 976-988.
[7] Fu Y, Lin Z. Space traveling across VM: Automatically bridging the semantic gap in virtual machine introspection via online kernel data redirection[C]//Proceedings of the IEEE Symposium Security and Privacy. IEEE, 2012: 586-600.
[8] Wu R, Chen P, Liu P, et al. System call redirection: A practical approach to meeting real-world virtual machine introspection needs[C]//Proceedings of the 44th Annual IEEE International Conference on Dependable Systems and Networks. IEEE, 2014: 574~585.
[9] Dai W, Jin H, Zou D, et al. TEE: a virtual DRTM based execution environment for secure cloud-end computing[J]. Future Generation Computer Systems, 2015, 49:47-57.
[10] Jin H, Zou D, et al. Trusted Virtual Computing System[OL]. http://www.freepatentsonline.com/20150244717.pdf
[11] Dai W, Parker T P, Jin H, et al. Enhancing data trustworthiness via assured digital signing[J]. IEEE Transactions on Dependable and Secure Computing, 2012: 838-851.
[12] Xiang G, Jin H, Zou D, et al. VMDriver: A driver-based monitoring mechanism for virtualization[C]//Proceedings of the 29th IEEE Symposium on Reliable Distributed Systems. IEEE, 2010: 72-81.
[13] Zou D, Zhang W, Qiang W, et al. Design and implementation of a trusted monitoring framework for cloud platforms[J]. Future Generation Computer Systems, 2013, 29(8):2092-2102.
[14] Yuan J, Qiang W, Jin H, et al. CloudTaint: An elastic taint tracking framework for malware detection in the cloud. The Journal of Supercomputing, 2014, 70(3): 1433-1450.
[15] Yuan B, Zou D, Yu S, et al. Defending against Flow Table Overloading Attack in Software-Defined Networks[J]. IEEE Transactions on Services Computing, 2016.
[16] Yuan B, Zou D, Jin H, et al. HostWatcher: Protecting hosts in cloud data centers through software-defined networking[J]. Future Generation Computer Systems, 2017.
所有评论仅代表网友意见